「.NET + Lambda のパフォーマンスを最適化する方法」というテーマのビデオセッションで話しました #devio2023
いわさです。
現在 DevelopersIO 2023 のイベントが各地でオフライン開催されていますが、実は YouTube でのビデオセッションも公開されています。
今回私のほうでは「.NET + Lambda のパフォーマンスを最適化する方」というタイトルで投稿しました。
概要
AWS re:Invent 2022 では Lambda SnapStart が発表されました。
この機能を使うと Java on Lambda のコールドスタート速度を劇的に改善することが出来ます。
.NET 開発者のみなさんは「あれ、.NET は...?」って思いませんでしたか。
残念ながら本日時点で .NET on Lambda では SnapStart 機能が使えません。
では .NET on Lambda のコールドスタートが遅い問題は諦めるしかないのでしょうか。
実は最新の .NET on Lambda ではコールドスタート速度を改善するための機能が利用出来るようになっていたり、実行速度を向上させるためにいくつか抑えておくべき要素があります。
この動画では AWS が公開しているパフォーマンス測定結果をもとに各要素ごとに考察してみました。
動画
目次
自己紹介・アジェンダ・前置き以外の目次は以下となってます、クリック頂くと YouTube サイトに移動いたします。
- 02:11 Lambdaと.NETについて
- 06:27 パフォーマンス向上のアプローチ
- 10:12 アプローチ別パフォーマンス比較結果
- 11:17 .NETバージョンごとの比較
- 13:13 Native AOTの比較
- 14:07 CPUアーキテクチャ別の比較
- 14:54 まとめ
資料
参考ページ
- Developing .NET on AWS :: My AWS Workshop
- AWS での .NET | AWS での .NET でクラウドの力を引き出す
- AWS Graviton2 プロセッサを搭載した AWS Lambda 関数 – Arm で関数を実行し、最大 34% 優れた料金パフォーマンスを実現 | Amazon Web Services ブログ
- aws-samples/serverless-dotnet-demo
さいごに
今回の動画では .NET on Lambda のパフォーマンスを向上する方法を紹介しました。
たしかに速度が向上されるアプローチもあるのですが、特にコールドスタート速度のための Native AOT については、手間や制限事項もあったりするので AWS レイヤーで対応出来る SnapStart がサポートされてほしいですね。
今年の re:Invent 2023 に期待しましょう...!